package com.wengzw.message.common.utils;

import lombok.extern.slf4j.Slf4j;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Base64;

/**
 * @author wengzw
 * @date 2022/6/17 15:12
 */
@Slf4j
public class ThunderUtils {
    /**
     * 迅雷下载专用链接
     */
    private static String THUNDER = "thunder://";

    /**
     * 判断是否是迅雷链接
     *
     * @param url
     * @return
     */
    public static boolean isThunderLink(String url) {
        return url.startsWith(THUNDER);
    }

    /**
     * 迅雷的thunder://地址就是将普通url地址加前缀‘AA’、后缀‘ZZ’，再base64编码后得到的字符串
     *
     * 转换http URL
     * @param url
     * @return
     */
    public static String toHttpUrl(String url) {
        // 不是迅雷链接，直接返回
        if (!isThunderLink(url)) {
            return url;
        }
        log.info("当前 {} 是迅雷链接，开始转化", url);

        // base 64转换
        try {
            new String(Base64.getDecoder().decode(url.getBytes()),"UTF-8");
            // url 解码
            url = URLDecoder.decode(url, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        // 去头去尾
        if (url.startsWith("AA")) {
            url = url.substring(2);
        }
        if (url.endsWith("ZZ")) {
            url = url.substring(0, url.length() - 2);
        }
        return url;
    }
}
